package com.example.pt.repository;

import com.example.pt.entity.*;

import org.apache.ibatis.annotations.Param;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Optional;


@Repository
public interface TorrentFileRepository extends JpaRepository<TorrentFile, Integer> {
    List<TorrentFile> findByUid(int uid);
    Optional<TorrentFile> findByTid(int tid);
    List<TorrentFile> findByCategory(int category);
    List<TorrentFile> findByStatus(int status);
  //  List<TorrentFile> findByCategoryAndStatus(String category, int status);
    List<TorrentFile> findByTitleContaining(String keyword);//??

    // 查询本周下载量最低的10个种子（按upload_time过滤）
    @Query("SELECT t FROM TorrentFile t " +
//            "WHERE t.uploadTime BETWEEN :start AND :end " +
            "ORDER BY t.downloadCount ASC")
    List<TorrentFile> findTop10ByUploadTimeBetweenAndDownloadCountAsc();
//            @Param("start") LocalDateTime start, @Param("end") LocalDateTime end);

    // 查询上传时间在指定时间之后的种子（新种子）
    List<TorrentFile> findByUploadTimeAfter(LocalDateTime date);

    // 查询上传时间在[start, end)之间的种子（中期种子）
    List<TorrentFile> findByUploadTimeBetween(LocalDateTime start, LocalDateTime end);


}
